package dk.au.cs.peterbn.patterns;

/**
 * Type relations in the system
 */
public interface TypeRelation {


    /**
     * @return the kind of relation
     */
    public Kind getKind();

    /**
     * @return The target role for the relation
     */
    public TypeRole getTarget();

    public enum Kind {
        IS_A("is-a"),
        HAS_A("has-a");

        private final String s;
        Kind(String s) {
            this.s = s;
        }

        public static Kind get(String name) {
            for (Kind kind : values()) {
                if (kind.s.equals(name)) {
                    return kind;
                }
            }
            return null;
        }

    }
}
